package com.mapper;

import com.pojo.Content;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ContentMapper {
    //    建立待办事项
    void insertContent(@Param("content")Content content);

    //    删除待办事项（根据用户id和待办id将待办删除）
    void deleteContent(@Param("id") Integer id,@Param("userId") Integer userId);

    /*点击哪天就显示哪天内容*/
    List<Content> findTodoToday(@Param("date") String date,@Param("userId") Integer userId);

    //    修改待办（修改内容）
    void updateContent(@Param("content") String content,@Param("id") Integer id);

    //    修改待办（修改地点）
    void updateAddress(@Param("address") String address,@Param("id") Integer id);

    //    修改待办（修改类型）
    void updateType(@Param("type") String type,@Param("id") Integer id);

    //    修改待办（修改开始日期）
    void updateStartDate(@Param("startDate") String startDate,@Param("id") Integer id);

    //    修改待办（修改结束日期）
    void updateEndDate(@Param("endDate") String endDate,@Param("id") Integer id);

    //    修改待办（开始日期，结束日期）
    void updateDate(@Param("startDate") String startDate,@Param("endDate") String endDate,@Param("id") Integer id);

    //    修改待办（修改参与者）
    void updatePartner(@Param("partner") String partner,@Param("id") Integer id);

    //    修改所有
    void updateTodo(@Param("content") Content content);

    //    标记工作已经完成
    void workDone(@Param("id") Integer id,@Param("status") Integer status);

    //    查询某个用户的所有待办事项
    List<Content> searchTodo(@Param("userId") Integer userId);

    Content findById(@Param("id") Integer id);
    List<Content> findById2(@Param("id") Integer id);

    //    随便按照什么查询
    List<Content> findByAnyWhat(@Param("content") Content content);

    //    按照日期查询：查询当日待办
    List<Content> findTodoByDay(@Param("userId") Integer userId);

    //    按照日期查询：查询近七天待办
    List<Content> findTodoNearSeven(@Param("userId") Integer userId);

    //    按照日期查询：查询当月待办
    List<Content> findTodoByMonth(@Param("userId") Integer userId);

    //    获取当前月的todo总量
    Double todoCount(@Param("userId") Integer userId);

    //    获取当前月的todo完成数量
    Double doneCount(@Param("userId") Integer userId);

    //    获取当天的todo总量
    Double todoCountByDay(@Param("userId") Integer userId);

    //    获取当天的todo完成量
    Double todoDoneByDay(@Param("userId") Integer userId);

    //    获取本周的todo总量
    Double todoCountByWeek(@Param("userId") Integer userId);

    //    获取本周的todo完成量
    Double todoDoneByWeek(@Param("userId") Integer userId);

    //    查询某个月的数据
    List<Content> findTodoWantMonth(@Param("wantMonth") String wantMonth,@Param("userId") Integer userId);

    //    学习，生活，工作，娱乐
    //    查询最近三个月的学习类型的数量
    Integer countByStudy(@Param("userId") Integer userId);

    Integer countByLife(@Param("userId") Integer userId);

    Integer countByWork(@Param("userId") Integer userId);

    Integer countByEntertainment(@Param("userId") Integer userId);

//    查想要的
    List<Content> findAny(@Param("keyWords") String keyWords,@Param("userId") Integer userId);

    // 查询想要的月的待办总量
    Double countByWhatMonth(@Param("content") Content content);
    // 查询想要的月的完成总量
    Double doneByWhatMonth(@Param("content") Content content);

}
